package main

/*
	基础读写操作
*/
import (
	"fmt"
	"io"
	"os"
)

func main() {
	/**
	读取数据：
		Reader接口：
		Read(p []byte) (n int, error)
	*/
	// 读取本地aa.txt文件中的数据
	// step1:打开文件
	fileName := "E:\\AllCodes\\Base\\21io\\a.txt"
	file, err := os.Open(fileName)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()
	bs := make([]byte, 4, 4)
	//// 第一次读取
	//n, err := file.Read(bs)
	//fmt.Println(err)
	//fmt.Println(n)
	//fmt.Println(bs)
	//// 第二次读取
	//n, err = file.Read(bs)
	//fmt.Println(err)
	//fmt.Println(n)
	//fmt.Println(string(bs))
	//// 第三次读取
	//n, err = file.Read(bs)
	//fmt.Println(err)
	//fmt.Println(n)
	//fmt.Println(string(bs))

	// 读取操作
	n := -1
	for {
		n, err = file.Read(bs)
		if n == 0 || err == io.EOF {
			break
		}
		fmt.Println(string(bs[:n]))
	}

	// 写操作
	file, err = os.OpenFile(fileName, os.O_APPEND, os.ModePerm)
	if err != nil {
		fmt.Println(err)
	}

	buffer := []byte{65, 66, 67, 68, 69}
	n, err = file.Write(buffer)
	fmt.Println(err)
	fmt.Println(n)
}
